Systems and methods for client-based addressable advertising

ABSTRACT

In accordance with the present invention, systems and methods that allow a television broadcast facility or a headend to insert in-band messages, where the inserted message allow receivers to switch to, insert, or otherwise show addressable advertisements to its viewers.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119(e) of U.S.Provisional Patent Application No. 60/858,549, filed Nov. 13, 2006 andU.S. Provisional Patent Application No. 60/858,531, filed Nov. 13, 2006,which are both hereby incorporated by reference herein in theirentireties.

FIELD OF THE INVENTION

The present invention generally relates to systems and methods foraddressable advertising. More particularly, the present inventionrelates to a digital program insertion application that allowstelevision distribution networks and cable headends to insert in-bandmessages into feeds to a receiver, where the receiver is capable ofswitching to and/or inserting addressable advertisements into atelevision signal.

BACKGROUND OF THE INVENTION

As the demand for digital programming continues to grow, cabletelevision providers are transitioning from analog cable transmissionsystems to hybrid analog/digital and all-digital cable distributionsystems. With this transition, the current distribution of televisionmessages, such as commercials, from an originator (e.g., an advertiser)or distributor to one or more television broadcast facilities and/orcable television providers, does not easily allow for the insertion ofpersonalized commercials or messages.

Conventional analog advertisement insertion systems distributed programsas NTSC video with analog cue-tones to cable headends. These analogcue-tones provided a signal for a local operator to replace a nationaladvertisement with a local advertisement. For example, upon receivingthe analog cue-tones, advertisement insertion equipment (e.g., splicers,video tape recorders, etc.) played a grouping of thirty second localadvertisements. Near the end of the commercial break, the analogcue-tones received another set of cue-tones to indicate theadvertisement insertion equipment to stop playing and switch back to thenetwork feed. However, these advertisement insertion systems that useanalog cue-tone systems have limited capabilities. For example, in ananalog system, the insertion equipment cannot detect a program change.When a nationally broadcast sporting event goes into overtime, alow-value advertisement is usually played as originally scheduled asopposed to a high-value advertisement that could have been played.

Recently, the Society of Cable Telecommunications Engineers, Inc.(SCTE), Engineering Committee, Digital Video Subcommittee, developed astandard that supports the splicing of MPEG-2 streams for the purpose ofDigital Program Insertion (DPI). This is described, for example, inDocument ANSI/SCTE 35 2004, entitled “Digital Program Insertion CueingMessage for Cable,” which is hereby incorporated by reference herein inits entirety. As described, SCTE 35 2004 describes a technique fornotifying advertisement insertion systems and advertisement splicers ofupcoming splice points and other timing information in the transportstream into which a digitally encoded advertisement or other content canbe inserted. More particularly, an advertisement splicer looks for aparticular message packets that are encoded into an MPEG-2 transportstream and that are identified by a unique packet identifier (PID).These particular message packets indicate when splice points occurwithout the need for special processing. However, the SCTE 35 2004standard does not provide an efficient approach for providing insertioninstructions and/or other commands to receivers.

More particularly, there is a need to provide commands and other datawhich instruct the receiver as to which transport streams to present toa viewer at the receiver. For example, Visible World provides approachesfor creating personalized messages (e.g., commercials, advertisements,etc.) in commonly-assigned, co-pending U.S. patent application Ser. No.09/841,465, filed on Apr. 24, 2001, which is incorporated herein byreference. The Visible World system, as described in U.S. patentapplication Ser. No. 09/841,465, is used to provide multipleadvertisements, multiple media segments, and other media content at thesame time, over multiple programming streams and enables headends and/orreceivers to decide which of the plurality of programming streams topresent to a viewer in a given break in any programming signal. Again,the SCTE 35 2004 standard does not provide an approach for providinginsertion instructions and/or other commands to receivers.

Accordingly, it is desirable to provide systems and methods thatovercome these and other deficiencies of the prior art.

For example, it would be desirable to provide systems and methods thatallow a television broadcast facility or headend to insert messages forreceiver-based digital program insertion.

For example, it would also be desirable to provide systems and methodsthat allow a television broadcast facility or headend to insert markermessages to receivers that provide an approach for the receiver to knowwhere they are in the advertisement or advertising break, and to dealwith error situations (e.g., when no advertising material is present).

SUMMARY OF THE INVENTION

In accordance with the present invention, a digital program insertionsystem is provided. Generally speaking, the system allows a televisionbroadcast facility or headend to insert in-band receiver instructionmessages. Receivers receive these in-band messages, which enable thereceivers to switch to, insert, or otherwise display addressableadvertisements (or segments) to the viewer.

Multiple transport streams from a headend are received at a receiver,where the multiple transport streams carry television programs andaddressable advertisements (or segments of addressable advertisements).Each television program in the transport stream is made up from a set ofindividual data streams—e.g., one or more data streams for the videocomponent of the television program, one or more data streams for theaudio component of the television program, and one or more data streamsfor data (sometimes referred to as “private data”) relating to thetelevision program. The receiver that is receiving a television programlooks up the set of individual data streams associated with that programby using, for example, a Program Map Table (PMT). At least one of theprivate data streams associated with the television program includesthese in-band messages or receiver instructions that provideinstructions for the receiver to display addressable advertisements.These instructions may include, for example, timing instructions (e.g.,when a certain addressable advertisement or media segment should bedisplayed), metadata instructions (e.g., which specific addressableadvertisements or media segments should be displayed), and timelineinstructions (e.g., marker messages that assists the receiver inunderstanding the timeline of an advertisement and the commercial breakand that assist the receiver handle error situations). However, thesereceiver instructions may include any suitable information, such as, forexample, instructions to retrieve media segments from a particular datastream, instructions to construct an addressable advertisement usingmedia segments from particular data streams, and instructions on errorcorrection.

The receiver may use the metadata instructions to determine whichaddressable advertisement (or media segment) to display. The receivermay use the timeline instructions to determine when the addressableadvertisement (or the media segment) should be displayed. For example,if a receiver receiving timing instructions that an upcoming addressableadvertising break is sixty seconds in length and that the addressableadvertising break is approaching in two seconds, the receiver looks tothe previously received metadata to determine which addressableadvertisements to display (e.g., advertisements A and B that are eachthirty seconds in length).

Throughout the addressable advertising break (and sometimes atpredetermined times before and after the advertising or commercialbreak), the system provides marker messages (or timeline messages) inthe transport streams at, for example, regular intervals. These markermessages enable a receiver to understand the timeline within theaddressable advertising break. For example, if the receiver tunes intothe sixty second advertising break from another program (e.g., after aportion of the first advertisements of the advertising break hasplayed), the receiver has missed the timing instructions. Using themarker messages, the receiver determines the next advertisement todisplay—e.g., advertisement B at two seconds into advertisement B afterthe receiver tuned into the advertising break at thirty-two secondsafter the beginning of the break.

In addition, it should be noted that many conventional receivers (e.g.,set-top boxes) do not have a programmable ability to detect whether ornot the receiver is playing the correct audio and/or video at any pointin time. That is, conventional receivers remain inactive or dormantafter tuning to a particular video and/or audio stream. The markermessages of the present invention provide the receiver with an approachfor continuously recognize and identify the timeline for advertisingbreaks or commercial breaks and its associated timing and/or metadatainformation. In addition, the marker messages of the present inventionprovide receivers with an approach for error correction. For example,marker messages may be inserted with a sub-second frequency (e.g., every100 milliseconds). When the receiver is instructed to switch toaddressable advertisement A that is in another transport stream from thestream that is carrying the television program and the addressableadvertisement is not present, the receiver detects the lack of incomingmarker messages and returns to the stream carrying the televisionprogram almost instantaneously as opposed to showing black screens forthe remainder of the advertising break.

In accordance with some embodiments, systems and methods for insertingadvertisements into a digital programming signal that is received at areceiver are provided. A plurality of transport streams from a headendare received at the receiver, where the plurality of transport streamscarry a plurality of television programs, a plurality of addressableadvertisements, a plurality of segments of addressable advertisements,and a plurality of receiver instructions. The plurality of receiverinstructions include at least one of: timing messages, metadatamessages, and marker messages. The receiver uses the timing messages toindicate when an addressable advertisement is to be displayed for anaddressable advertising break. The receiver uses the metadata messagesto indicate at least one of: the addressable advertisement to beselected from the plurality of addressable advertisements and a segmentfrom the plurality of segments. The receiver uses the marker messages toidentify each of the plurality of addressable advertisements, each ofthe plurality of segments, and a relative time position within theaddressable advertising break. The marker messages are received atpredetermined time intervals.

The plurality of receiver instructions are used by the receiver toswitch to the addressable advertisement for the advertising break. Thereceiver then instructs a decoder to start decoding the addressableadvertisement.

Thus, there has been outlined, rather broadly, the more importantfeatures of the invention in order that the detailed description thereofthat follows may be better understood, and in order that the presentcontribution to the art may be better appreciated. There are, of course,additional features of the invention that will be described hereinafterand which will form the subject matter of the claims appended hereto.

In this respect, before explaining at least one embodiment of theinvention in detail, it is to be understood that the invention is notlimited in its application to the details of construction and to thearrangements of the components set forth in the following description orillustrated in the drawings. The invention is capable of otherembodiments and of being practiced and carried out in various ways.Also, it is to be understood that the phraseology and terminologyemployed herein are for the purpose of description and should not beregarded as limiting.

As such, those skilled in the art will appreciate that the conception,upon which this disclosure is based, may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

These together with other objects of the invention, along with thevarious features of novelty which characterize the invention, arepointed out with particularity in the claims annexed to and forming apart of this disclosure. For a better understanding of the invention,its operating advantages and the specific objects attained by its uses,reference should be had to the accompanying drawings and descriptionmatter in which there is illustrated preferred embodiments of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the present invention canbe more fully appreciated with reference to the following detaileddescription of the invention when considered in connection with thefollowing drawings, in which like reference numerals identify likeelements.

FIG. 1 is a schematic diagram showing the multiple program transportstreams carrying programs, advertisements, and in-band receiverinstructions (sometimes referred to herein as “DPI PID”) in accordancewith some embodiments of the present invention.

FIG. 2 is a schematic diagram of an illustrative television system onwhich a digital program insertion application may be implemented inaccordance with some embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In accordance with the present invention, a digital program insertionsystem (sometimes referred to herein as “the system”) is provided. Thesystem allows a television broadcast facility or headend to insertin-band messages to receivers, where receivers may use the in-bandmessage to switch to, insert, and/or otherwise show addressableadvertisements (or segments) to viewers.

Multiple transport streams from a headend are received at a receiver,where the multiple transport streams carry television programs andaddressable advertisements (or segments of addressable advertisements).Each television program in the transport stream is made up from a set ofindividual data streams—e.g., one or more data streams for the videocomponent of the television program, one or more data streams for theaudio component of the television program, and one or more data streamsfor data (sometimes referred to as “private data”) relating to thetelevision program. The receiver that is receiving a television programlooks up the set of individual data streams associated with that programby using, for example, a Program Map Table (PMT). At least one of theprivate data streams associated with the television program includesthese in-band messages or receiver instructions that provideinstructions for the receiver to display addressable advertisements.These instructions may include, for example, timing instructions (e.g.,when a certain addressable advertisement or media segment should bedisplayed), metadata instructions (e.g., which specific addressableadvertisements or media segments should be displayed), and timelineinstructions (e.g., marker messages that assists the receiver inunderstanding the timeline of an advertisement and the commercial breakand that assist the receiver handle error situations). However, thesereceiver instructions may include any suitable information, such as, forexample, instructions to retrieve media segments from a particular datastream, instructions to construct an addressable advertisement usingmedia segments from particular data streams, and instructions on errorcorrection.

The receiver may use the metadata instructions to determine whichaddressable advertisement (or media segment) to display. The receivermay use the timeline instructions to determine when the addressableadvertisement (or the media segment) should be displayed. For example,if a receiver receiving timing instructions that an upcoming addressableadvertising break is sixty seconds in length and that the addressableadvertising break is approaching in two seconds, the receiver looks tothe previously received metadata to determine which addressableadvertisements to display (e.g., advertisements A and B that are eachthirty seconds in length).

Throughout the addressable advertising break (and sometimes atpredetermined times before and after the advertising or commercialbreak), the system provides marker messages (or timeline messages) inthe transport streams at, for example, regular intervals. These markermessages enable a receiver to understand the timeline within theaddressable advertising break. For example, if the receiver tunes intothe sixty second advertising break from another program (e.g., after aportion of the first advertisements of the advertising break hasplayed), the receiver has missed the timing instructions. Using themarker messages, the receiver determines the next advertisement todisplay—e.g., advertisement B at two seconds into advertisement B afterthe receiver tuned into the advertising break at thirty-two secondsafter the beginning of the break.

In addition, it should be noted that many conventional receivers (e.g.,set-top boxes) do not have a programmable ability to detect whether ornot the receiver is playing the correct audio and/or video at any pointin time. The marker messages of the present invention provide thereceiver with an approach for continuously recognize and identify thetimeline for advertising breaks or commercial breaks and its associatedtiming and/or metadata information. In addition, the marker messages ofthe present invention provide receivers with an approach for errorcorrection. For example, marker messages may be inserted with asub-second frequency (e.g., every 100 milliseconds). When the receiveris instructed to switch to addressable advertisement A that is inanother transport stream from the stream that is carrying the televisionprogram and the addressable advertisement is not present, the receiverdetects the lack of incoming marker messages and returns to the streamcarrying the television program almost instantaneously as opposed toshowing black screens for the remainder of the advertising break.

It should be noted that the Society of Cable TelecommunicationsEngineers, Inc. (SCTE), Engineering Committee, Digital VideoSubcommittee, developed a standard that supports the splicing of MPEG-2streams for the purpose of Digital Program Insertion (DPI). This isdescribed, for example, in Document ANSI/SCTE 35 2004, entitled “DigitalProgram Insertion Cueing Message for Cable,” which is herebyincorporated by reference herein in its entirety. In accordance withsome embodiments of the present invention, systems and methods forproviding in-band receiver instructions for addressable advertising maybe provided. Generally speaking, these in-band messages are inserted atthe headend and received by the receiver (e.g., a set-top box) and maybe implemented as an extension of the SCTE 35 2004 standard. It shouldbe noted that, unlike the in-band messages of the present invention, themessages provided by the SCTE 35 2004 standard (e.g., splice_null,splice_schedule, splice_insert, splice_signal, bandwidth_reservation)are inserted by the programmer and received (and subsequently strippedout) by advertisement splicers in headends.

It should also be noted that although the embodiments are described asbeing implemented on a set-top box, this is only illustrative. Thesystems and methods may be implemented on any suitable receiver, such asa Switched Digital Video (SDV) headend, a personal computer, a portablecomputer, a cellular phone, or a personal digital assistant (PDA), toprovide such features.

The following protocols and their accompanying descriptions providedetailed examples of the implementation of the systems and methods ofthe present invention.

As shown below in Table 1, the system allows the headend to insertreceiver instructions. For example, as described herein, the headend mayuse the system to insert client_break, client_trigger, client_splice,and client_marker instructions into the splice information table(splice_info_section) of an SCTE 35 message. It should be noted thatinserting these receiver instructions into the splice information tableof an SCTE 35 message implements the receiver instruction protocol as anextension of the SCTE 35 protocol. Although the embodiments aredescribed as being implemented as an extension of the SCTE 35 protocol,this is only illustrative.

TABLE 1 Section Element bits Type Value Encrypted splice_info_section{ Table_id 8 uimsbf 0xFC 0  section_syntax_indicator 1 bslbf 0 1 private_indicator 1 bslbf 0  reserved 2 bslbf 0  section_length 12uimsbf <4094 2  protocol_version 8 uimsbf 0 3  encrypted_packet 1 bslbf0 4  encryption_algorithm 6 uimsbf 0  pts_adjustment 33 uimsbf 0 5, 6,7, 8  cw_index 8 uimsbf 0xFF 9  Reserved 12 bslbf 0 10, 11 splice_command_length 12 uimsbf 12  splice_command_type 8 uimsbf E 13 if (splice_command_type==0x00) 14   splice_null( ) E  if(splice_command_type==0x04)   splice_schedule( ) E  if(splice_command_type==0x05)   splice_insert( ) E  if(splice_command_type==0x06)   splice_signal( ) E  if(splice_command_type==0x07)   bandwidth_reservation( ) E  if(splice_command_type==0x24)   client_break( ) E  if(splice_command_type==0x25)   client_trigger( ) E  if(splice_command_type==0x26)   client_splice( ) E  if(splice_command_type==0x27)   client_marker( ) E  descriptor_loop_length16 uimsbf E  for(i=0;i<N1;i++)   splice_descriptor( ) E for(i=0;i<N2;i++)   alignment_stuffing 8 bslbf E  if(encrypted_packet)  E_CRC_32 32 rpchof E  CRC_32 32 rpchof }

As shown in Table 2 below, the system provides the client_break messageas a metadata message to instruct the receiver on which addressableadvertisements to show in an upcoming break. The client_break message isgenerally inserted at a predetermined time before the commercial break(e.g., five seconds before, ten seconds before, etc.). It should benoted that the same client_break message may be inserted multiple timesin sequence with little spacing between successive messages to handlethe receiver from missing the client_break message.

TABLE 2 Section Element Bits Type client_break{  break_id 32 uimbsf start_time (in msec from now, pos or neg) 32 imsbf  expiration_time (inmsec from now, pos) 32 uimbsf  num_positions 8 uimbsf for(i=0;i<num_positions;i++) { uimbsf   duration (of position, in msec)32 uimbsf   ad_id (0=not addressable) 16 uimbsf   ad_source(1=inter/2=intra) 4 uimbsf   num_media_types (always 3 for now) 4 uimbsf  for(j=0;j<num_media_types;j++) { uimbsf    media_type_id (0=DPIprotocol) 4 uimbsf    num_pid_ranges 12 uimbsf   for(k=0;k<num_pid_ranges;k++) {     Offset 13 uimbsf     num_pids 11uimbsf    }    num_slots 8 uimbsf    for(k=0;k<num_slots;k++) { uimbsf    num_options 16 uimbsf     duration (of slot, in msec) 32 uimbsf    }  }  }  frequency (in Mhz, mid-band. Ex: 57 MHz) 16 uimbsf }

In this embodiment, the client_break message includes the followingfields:

break_id—This field is generally unique for each break, for example, toavoid multiple breaks with the same break_id being active in thereceiver. This field may be managed and assigned by the advertisementinserter in the headend.

start_time—This field indicates the approximate time until the start ofthe break.

expiration_time—This field is generally provided a few seconds after thecommercial break has ended and is used by the targeted engine as atimeout instruction to create a playout report. For example, for a 120second commercial or network break, the expiration_time field may be setto 125 seconds. After the time has expired, no additional messages arepermitted on the television program for that break. It should be notedthat, if this value is too short, it may lead to race conditions withinthe receiver. However, if the value of this field is too long, thereceiver is delayed in creating and sending a playout report, which maylead to a loss of the playout report (e.g., due to receives rebooting inthe meantime).

num_positions—This field indicates the number of positions (e.g.,advertisements, media segments, advertising segments, or other media) inthe break.

ad_id—For each position, this field provides a unique identifier for theadvertisement in that position. This field is used by the receiver todetermine the sequence of media segments to display for thatadvertisement (e.g., this sequence may be distributed out-of-band aheadof time). It should be noted that, in some embodiments (e.g., theVisible World system), advertisements may consist of a sequence ofseparate audio, video, and/or other media segments that are to bedisplayed or constructed in a particular sequence to show the fullcompleted advertisement. In some embodiments, an ad_id set to 0 is usedfor an advertisement that is copied from the stream carrying thetelevision program, which is not an addressable advertisement.

num_media_types—For each position, this field indicates the number ofmedia types. For example, num_media_types may be set to 3 to indicatethe receiver instruction protocol, Video, and Audio media types. Inanother example, Secondary Audio Programming (SAP) may be supported asan additional media type.

media_type_id—For each position and each media type, this field providesan identifier for the media type. For example, a media_type_id set to 0indicates the receiver instruction protocol, a media_type_id set to 1indicates Video, and a media_type_id set to 2 indicates Audio.

num_pid_ranges—For each position and each media type, this fieldindicates the number of PID ranges. PID ranges are generally used to mapmetadata instructions to actual media streams (PIDs) of the addressableadvertisements.

num_slots—For each position and each media type, this field indicatesthe number of micro switch points within the advertisement. A microswitch point (sometimes referred to as a “slot”) refers to a transitionbetween two media segments within an addressable advertisement. Forexample, if an addressable advertisement is thirty seconds long thatincludes a generic twenty second beginning portion of the addressableadvertisement, and multiple different ten second end-tags or endings,then there is one micro switch point that occurs twenty seconds into theadvertisement.

num_options—For each position, each media type and each micro switchpoint, this field indicates the number of different options (PIDs) tochoose from for the switch point.

duration—For each position, each media type, and each micro switchpoint, this field indicates the length of the media segment (e.g., inmilliseconds). The duration fields add up to the total positionduration. The receiver uses the duration field to set a timeout to tuneback to the network (e.g., if the client_trigger to return to thenetwork feed is missed).

It should be noted that the frequency field (mid-band in megahertz)indicates the frequency of the commercial feeder. The commercial feederis the transport stream that contains the addressable advertisements (orsegments). It should also be noted that the frequency for the televisionprogram may be different from the frequency for the commercial feeder,or it may be the same (depending on whether the addressableadvertisements are carried in separate transport streams or not.

As shown in Table 3 below, the system provides the client_triggermessage as a timing message for the receiver to determine when to switchto an addressable advertisement. It should be noted that this embodimentincludes two different types of timing messages: one to instruct thereceiver to change frequency to an addressable advertisement(client_trigger), and one to instruct the receiver to switch streamswithin the same transport stream to an addressable advertisement orsegment (client_splice). The client_trigger message is generallyinserted at a predetermined time before the advertisement (e.g., twoseconds before, five seconds before, etc.).

TABLE 3 Section Element bits Type client_trigger{  break_id 32 uimbsf pos_in_break(1=start of first, 0=end of last) 8 uimbsf  relative_time(in msec) 32 uimbsf }

In this embodiment, the client_trigger message includes the followingfields:

break_id—This field is generally unique for each break and identifiesthe break to which this trigger message belongs.

pos_in_break—This field indicates the position in the upcomingadvertising break. For example, trigger messages with a position of 1are inserted on the program and represent the first advertisement in abreak.

relative_time—This field indicates the time until the first byte of theaddressable advertisement on the advertisement feeder is received or thefirst byte of the program after the break is received.

As shown in Table 4 below, the system provides the client_splice messageas another type of timing message. The client_splice is used to informthe receiver of micro switches, where a seamless transition between twomedia segments is required (PID switching within the same transportstream). The client_splice message is generally inserted such that theswitch should be made within a given number of milliseconds (e.g., lessthan or equal to fifty milliseconds) of the point in the stream to avoida video and/or an audio glitch. It should be noted that, similar to theclient_break message, the client_splice message may be inserted multipletimes in sequence with little spacing between successive messages tohandle the receiver from missing the client_splice message.

TABLE 4 Section Element bits Type client_splice{  pos_num (1=first pos.in break,...) 8 uimsbf  media_type (1=vid, 2=aud) 4 uimsbf  seq_num(1=end of first, 0=end of last) 12 uimsbf  pos_num_other 8 uimsbf media_type_other 4 uimsbf  seq_num_other 12 uimsbf }

In this embodiment, the client_splice message includes the followingfields:

pos_num—This field indicates the position in a particular advertisementbreak. For example, a local break of 60 seconds may have between 1 and 4positions (addressable advertisements) in it, where the positions startscounting from 1.

media_type—This field identifies the media for which the switch isintended. For example, a media_type set to 1 may indicate that video isto be switched, while a media_type set to 2 may indicate that audio isto be switched.

seq_num—This field identifies the sequence number of the switch message(micro switch point). For example, a seq_num of 0 indicates the lastmicro switch point in the stream to the receiver.

As shown in Table 5 below, the system provides the client_marker messageas a timeline (or marker) message. In some embodiments, the receiveruses client_marker messages for error-detection. The client_markermessage allows the receiver to detect if it is on the wrong frequency orif the receiver has otherwise switched to the wrong commercial (e.g., bydetecting the incoming client_marker messages present in theadvertisement the receiver has switched to). If, for example, thereceiver detects that the commercial feeder is not present, that anaddressable advertisement is not present on the commercial feeder, orthat the receiver switched to the wrong addressable advertisement, thereceiver tunes back to the network as soon as client_marker messages arenot received (or if the wrong client_marker messages are received)within a predetermined time (e.g., after a few milliseconds). It shouldbe noted that the client_marker message includes the same fields as theabove-described client_splice message. In addition, the client_splicemessage includes an elapsed_time field for each media type, whichindicates the time since the previous micro switch point for that mediatype (the start of the current microswitch point in the position beingplayed). The elapsed_time field may be used for tracking or debuggingpurposes.

TABLE 5 Section Element bits Type client_marker{  Pos_num_1 (1=first posin break,...) 8 uimsbf  media_type_1 (1=vid, 2=aud) 4 uimsbf  Seq_num_1(1=first slot in pos,...) 12 uimsbf  elapsed_time_1 (in msec from startof slot). 32 uimsbf  Pos_num_2 8 uimsbf  media_type_2 4 uimsbf Seq_num_2 12 Uimsbf  elapsed_time_2 32 Uimsbf }

Marker messages are inserted throughout the addressable advertisingbreak (and sometimes starting a few seconds before the start of anadvertising break and ending a few seconds after the end of theadvertising break) with a fixed, sub-second frequency. For example,marker messages may be inserted with a sub-second frequency of every 100milliseconds. It should be noted that other frequency values may beused.

In some embodiments, marker messages (e.g., client_marker of Table 5)may be used by the receiver to tune to the correct addressableadvertisement. For example, if the receiver tunes to a channel at agiven time after the trigger message (e.g., client_trigger message) hasbeen transmitted, the receiver receives the next marker message, whichsynchronizes the receiver and provides the information to the receiverto tune to the correct addressable advertisement.

In other embodiments, marker messages may be present (during the break)in both the television program as well as in the addressableadvertisements. This enables the receiver that tunes into an addressableadvertising break, to still switch to (or otherwise display) the correctaddressable advertisement. For example, if the receiver tunes into thesixty (60) second advertising break from another program (e.g., after aportion (32 seconds) of the advertising break has played), the receiverhas missed the timing instructions. Using the marker messages, thereceiver determines the next advertisement to display—e.g.,advertisement B at two seconds into advertisement B after the receivertuned into the advertising break at thirty-two (32) seconds after thebeginning of the break.

FIG. 1 is an illustrative example of program and targeted advertisementswith receiver instructions in accordance with some embodiments of thepresent invention. As shown in FIG. 1, the programs and theiraccompanying content (e.g., an audio PID, a video PID, a receiverinstruction PID, a Program Map Table, Entitlement Control Messages,etc.) are transmitted on a multiple program transport stream (MPTS) 100.The addressable advertisements and their associated individual datastreams (e.g., one or more audio PIDs, one or more video PIDs, areceiver instruction PID, a Program Map Table, etc.) are transmitted ona separate multiple program transport stream 110 (e.g., a commercialfeeder transport stream).

It should be noted that although FIG. 1 describes the intra-transportstream switching cases, where the targeted advertisement (commercialfeeder transport stream 110) is on a separate QAM, this is onlyillustrative. The application and its DPI messages may be used ininter-transport stream switching, where the targeted advertisement(commercial feeder transport stream) is on the same transport stream asthe network. Alternatively, the targeted advertisements may bedownloaded to a digital video recorder (DVR) or any other suitablerecording device. The application and its DPI messages may be used toswitch between a transport stream and the recording device.

As shown in FIG. 1, the commercial break in the network feed is overlaidor replaced with two targeted advertisements in the advertisement feedermultiple program transport stream (transport stream 110). Within eachMPTS 100 and 110, multiple in-band client-DPI (receiver instruction)messages are inserted. For example, the client_break message 120 isinserted into the MPTS 100 to signal the receiver of an upcomingaddressable advertising break. Client_break message 120 may be insertedin the MPTS about five to ten seconds prior to the receipt of aclient_trigger message 130.

Client_trigger message 130 informs the receiver of the start of a newadvertisement in a break or indicates the start of the televisionprogram when the last advertisement in the break has played. In responseto receiving the client_trigger message 130, the receiver switches fromthe MPTS to the separate transport stream 110. Separate transport stream110 includes multiple client_marker messages 140, multiple client_splicemessages 150 for different media types (e.g., video, audio, etc.), andmultiple client_trigger messages 160. Upon receiving the lastclient_trigger message—e.g., T(0), which indicates the start of thetelevision program after the last advertisement or commercial in thebreak has played, the receiver tunes back to the television program onthe MPTS.

An illustrative arrangement that support the insertion of in-bandclient-DPI (receiver instruction) messages is shown in FIG. 2. It shouldbe noted that other arrangements may also be used.

FIG. 2 is a schematic diagram of an illustrative television system onwhich the application may be implemented in accordance with someembodiments of the present invention. Content, such as televisionprograms and other media may be provided from one or more sources toheadend 200. Headend 200 may be a cable system headend, a satellitedistribution center, a television broadcast facility, or any othersuitable facility for distributing content to viewers at one or morereceivers 210.

It should be noted that there are generally numerous headends 200 ortelevision broadcasting facilities in a television system, but only oneis shown in FIG. 2 to avoid overcomplicating the drawings.

Receiver 210 may be, for example, a set-top box, a television, aSwitched Digital Video (SDV) head-end, a recording device, a personalcomputer, a laptop computer, a personal digital assistant, a cellulartelephone, or any other suitable platform. Receiver 210 may receivecontent, such as television programs, from headend 200 overcommunications link 220. Receiver 210 may also transmit signals toheadend 200 over communications link 220. Communications link 220 may becables or other wired connections, or wireless connections for broadcastor satellite links.

The receiver 210 may perform one or more of the following functions:

-   -   when the receiver is tuned (by viewer) to a television program        that is enabled for the addressable advertising system, it can        detect the presence of a data stream for receiver instructions        (client-DPI PID) and start monitoring the messages in it;    -   receive client_break messages and store the metadata in memory        for use at a later time (this metadata allows the receiver to        decide which advertisements to show for an upcoming break);    -   receive client_trigger messages and use them to switch/tune to        an addressable advertisement in another transport stream at the        beginning of an upcoming break (based on metadata previously        extracted and stored from the client_break message);    -   receive client_splice messages and use them to seamlessly switch        to media segments within a transport stream, these can be micro        switches between two media segments in the same advertisement,        or between two separate advertisements;    -   receive client_trigger messages that indicate the end of        addressable advertising elements in the commercial feeder, and        use it to switch or tune back to the television program; and/or    -   send reporting (playout) data back to the headend (within a        predetermined amount of time after the end of the break,        typically few seconds).

Accordingly, systems and methods that allow a television broadcastfacility or headend to insert receiver instructions are provided.

It is to be understood that the invention is not limited in itsapplication to the details of construction and to the arrangements ofthe components set forth in the following description or illustrated inthe drawings. The invention is capable of other embodiments and of beingpracticed and carried out in various ways. Also, it is to be understoodthat the phraseology and terminology employed herein are for the purposeof description and should not be regarded as limiting.

As such, those skilled in the art will appreciate that the conception,upon which this disclosure is based, may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

Although the present invention has been described and illustrated in theforegoing exemplary embodiments, it is understood that the presentdisclosure has been made only by way of example, and that numerouschanges in the details of implementation of the invention may be madewithout departing from the spirit and scope of the invention.

What is claimed is:
 1. A method for inserting advertisements into adigital programming signal received at a receiver, the methodcomprising: receiving a plurality of transport streams comprising aplurality of receiver instructions from a headend, the plurality oftransport streams comprising a plurality of television programs and aseparate content feeder transport stream carrying a plurality ofsegments of addressable advertisements, wherein: the plurality ofreceiver instructions include timing messages, metadata messagesrelating to plurality of segments of addressable advertisements, andmarker messages; the receiver uses the timing messages to indicate whenan addressable advertisement is to be displayed for an addressableadvertising break; the receiver uses the metadata messages to indicateeach of the plurality of segments of addressable advertisements to beassembled as the addressable advertisement; the receiver uses the markermessages to identify a relative time position within the addressableadvertising break; and the marker messages are received at predeterminedtime intervals; using the plurality of receiver instructions to assemblethe addressable advertisement within the content feeder transport streamusing at least two identified segments of addressable advertising; usingthe plurality of receiver instructions to tune in real-time to thecontent feeder transport stream carrying the addressable advertisementfor the advertising break; and instructing a decoder with the receiverto start decoding the addressable advertisement.
 2. The method of claim1, wherein the marker messages provide the receiver, at substantiallyany point in time, with an indication of the relative time within theaddressable advertisement and the addressable advertising break.
 3. Themethod of claim 1, further comprising: waiting to receive a subsequentmarker message in response to not receiving the timing messages;receiving the subsequent marker message within the predetermined timeintervals; determining the addressable advertisement to switch to basedon the subsequent marker message.
 4. The method of claim 1, furthercomprising: tuning to one or more data streams in response to thereceiver instructions; receiving a marker message within thepredetermined time intervals; and determining from the received markermessage whether the receiver has switched to the correct addressableadvertisement.
 5. The method of claim 1, further comprising: tuning toone or more data streams in response to the receiver instructions;receiving a marker message within the predetermined time intervals; andcomparing a unique identifier for the addressable advertisement or thesegment associated with the marker message with previously receivedunique identifiers associated with previously received marker messagesto determine whether the receiver has switched to the correctaddressable advertisement or correct segment.
 6. The method of claim 1,further comprising: tuning to the addressable advertising break afterthe addressable advertising break has started; receiving a subsequentmarker message in response to not receiving the timing messages; anddetermining the addressable advertisement to be played and a particularpoint within the addressable advertisement to start playing.
 7. Themethod of claim 1, wherein the receiver instructions are inserted at oneof: a headend and a television broadcast facility.
 8. The method ofclaim 1, further comprising: receiving the timing messages to recognizewhen the addressable advertising break is approaching in time; andretrieving the metadata messages to determine which of the plurality ofaddressable advertisement to display.
 9. The method of claim 3, furthercomprising tuning the receiver back to the transport stream carrying thetelevision programs in response to not receiving the subsequent markermessage within the predetermined time intervals.
 10. The method of claim5, wherein the marker messages synchronize the receiver and provide thereceiver with instructions to tune to the correct addressableadvertisement.
 11. A system for inserting advertisements into a digitalprogramming signal, the system comprising: a receiver that is configuredto: receive a plurality of transport streams comprising a plurality ofreceiver instructions from a headend, the plurality of transport streamscomprising a plurality of television programs and a separate contentfeeder transport stream carrying plurality of segments of addressableadvertisements, wherein: the plurality of receiver instructions includetiming messages, metadata messages relating to plurality of segments ofaddressable advertisements, and marker messages; the receiver uses thetiming messages to indicate when an addressable advertisement is to bedisplayed for an addressable advertising break; the receiver uses themetadata messages to indicate each of the plurality of segments ofaddressable advertisements to be assembled as the addressableadvertisement; the receiver uses the marker messages to identify arelative time position within the addressable advertising break; and themarker messages are received at predetermined time intervals; use theplurality of receiver instructions to assemble an addressableadvertisement within the content feeder transport stream using at leasttwo identified segments of addressable advertising; tune in real-time tothe content feeder transport stream carrying the addressableadvertisement for the advertising break based on the received receiverinstructions; and instruct a decoder to start decoding the addressableadvertisement.
 12. A non-transitory computer-readable storage mediumhaving computer-readable program code configured to insertadvertisements into a broadcast digital programming signal received at areceiver, the computer-readable program code comprising:computer-readable program code configured to receive a plurality ofbroadcast transport streams comprising a plurality of receiverinstructions from a headend, the plurality of broadcast transportstreams comprising a plurality of television programs and a separatebroadcast content feeder transport stream carrying a plurality ofsegments of addressable advertisements, wherein: the plurality ofreceiver instructions include timing messages, metadata messagesrelating to the plurality of segments of addressable advertisements, andmarker messages, the receiver uses the timing messages to indicate whenan addressable advertisement is to be displayed for an addressableadvertising break, the receiver uses the metadata messages to indicateeach of the plurality of segments of addressable advertisements to beassembled as the addressable advertisement, the receiver uses the markermessages to identify a relative time position within the addressableadvertising break, and the marker messages are received at predeterminedtime intervals; computer-readable program code configured to use theplurality of receiver instructions to assemble the addressableadvertisement within the content feeder transport stream using at leasttwo identified segments of addressable advertising; computer-readableprogram code configured to use the plurality of receiver instructions totune in real-time to the content feeder transport stream carrying theaddressable advertisement for the advertising break; andcomputer-readable program code configured to instruct a decoder with thereceiver to start decoding the addressable advertisement.
 13. Thecomputer-readable storage medium of claim 12, wherein the broadcasttransport streams originate from a cable television provider.
 14. Thecomputer-readable storage medium of claim 12, wherein the broadcasttransport streams originate from a satellite television provider.